from config import settings
#导入自定义配置
from . import global_settings
#导入默认配置
import importlib
import os

class Settings():
    def __init__(self):#初始化
        # 获取自定义配置的路径
        #os.environ['USER_SETTINGS'] = 'config.settings'
        conf_str = os.environ.get('USER_SETTINGS')
        # print(conf_str)
        #importlib.import_module导入模块
        model = importlib.import_module(conf_str)
        # 将字符串conf_str加载成模块
        # print(model)
        #拿模块的属性
        # ret = dir(model)
        # print(ret)

        # 先获取默认的配置
        for name in dir(global_settings):  # 循环global_settings 中的属性
            if name.isupper():  # 只要大写的
                # 获取默认配置中对应属性的值
                val = getattr(global_settings, name)
                # 给settings对象设置属性
                setattr(self, name, val)  # EMAIL,'SS@qq.com'

        # 再获取自定义配置放入setting中
        for name in dir(model):
            if name.isupper():
                # print(name)
                # 反射，获取对应属性的值
                val = getattr(model,name)
                # print(val)
                # 给settings对象设置属性
                setattr(self,name,val)

# 实例化
settings = Settings()




############上期写的，可以忽略
        # # 获取自定义的配置
        # module = importlib.import_module(conf_str) #通过路径的字符串获取到模块的对象
        # for name in dir(module):
        #     # 拿模块的属性
        #     # ret = dir(module)
        #     # print(ret)
        #     if name.isupper():
        #         # 获取自定义配置中对应属性的值
        #         val = getattr(module,name)
        #         # 给settings对象设置属性
        #         setattr(self,name,val)
        #         # print(val)

